左康波

业余文艺cg场景模型师

【工作流研发类】Nuke TCL语言手册分享

  |  
 阅读次数

*

前言


这是一份关于Nuke TCL语言(Tool Command Language)详细使用案例说明,可点击下面这个链接。对于nuke一些脚本工具的开发有很大的帮助。
http://tmml.sourceforge.net/doc/tcl/


*什么是 NUKE TCL

. .. …..Nuke TCL语言有点类似于Maya MEL和Houdini HScripts,编程语言万变不离其宗,都有变量,数据类型,内置函数,函数传参,流控制语句以及自定义函数等这些共通的东西,所以写起来并不麻烦,比如现在想获取当前nk文件的上上个文件夹的层级路径就可以这样来写.

1
2
3
4
5
6
# 获取当前nk文件的路径
[value root.name]
# 获取当前nk文件所在的文件夹路径
[file dirname [value root.name]]
# 获取当前文件路径任何一个层级的路径
[join [lrange [split [file dirname [value root.name]] /] 0 end-1] /]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 获取指定节点的参数值:
[value Read1.first]
# 获取当前节点的参数值:
[value this.size]
# 设置指定节点的参数值:
[knob Read1.first 10]
# 获取当前节点的第一帧:
[value this.first_frame]
# 设置TCL变量:
[set tsize 15]
# 之后可以用$的方式使用该变量来设置参数值:
[knob this.size $tsize]
# 获取上游节点的名称:
[value this.input.name]
# 获取Group节点上游节点的名称:
[value this.parent.input.name]
# 获取不带扩展名的文件路径:
[file rootname [value [topnode].file]]
# 获取文件名:
[basename [value [topnode].file]]
# 获取不带扩展名的文件名:
[basename [file rootname [value [topnode].file]]]
# 通过join和lrange来重新生成想要的文件夹路径(这个类似Python中字符串的split和join的功能):
[join [lrange [file split [value [topnode].file]] 0 7] /]
# 快速将Read节点中文件输出到同层级下tga的格式文件
[join [lrange [split [value [topnode].file] .] 0 end-2] .].%04d.tga
隐藏